iT邦幫忙

2024 iThome 鐵人賽

DAY 29
0
AI/ ML & Data

資料科學的小筆記系列 第 28

Day29:使用purrr套件進行functional programming(2)

  • 分享至 

  • xImage
  •  

今天繼續紀錄利用purrr套件進行functional programming~
modify 系列函式主要用於對列表或向量中的元素進行修改

  1. modify(.x, .f, ...)
    功能:對列表或向量中的每個元素應用函式 .f,並回傳一個與原列表結構相同的結果。
library(purrr)

x <- list(a = 1, b = 2, c = 3)

# 對每個元素加上 2
modify(x, ~ . + 2)

https://ithelp.ithome.com.tw/upload/images/20240909/201686071FyIpb1h6i.png

  1. modify_at(.x, .at, .f, ...)
    功能:對列表或向量中指定元素應用函式 .f,.at:用來指定哪些元素進行修改,可以是元素的名稱或位置。
x <- list(a = 1, b = 2, c = 3)

# 只修改元素 b
modify_at(x, "b", ~ . + 2)

https://ithelp.ithome.com.tw/upload/images/20240909/201686078mKasSn8yE.png

  1. modify_if(.x, .p, .f, ...)
    功能:對列表或向量中滿足條件的元素應用函式 .f,.p:是一個條件函式,用來決定哪些元素需要被修改。
x <- list(a = 1, b = "test", c = 3)

# 只修改數字類型的元素
modify_if(x, is.numeric, ~ . + 2)

https://ithelp.ithome.com.tw/upload/images/20240909/20168607HfvhUeLqiK.png

  1. modify_depth(.x, .depth, .f, ...)
    功能:對嵌套列表(nested list)的指定深度層次的元素應用函式 .f。
    .depth:指定應用函式的深度,深度為 1 表示修改第一層的元素,深度為 2 表示修改第二層的元素。
x <- list(
    list(a = 1, b = 2),
    list(a = 3, b = 4)
)

# 修改第二層的數值元素,每個元素加 2
result <- modify_depth(x, 2, ~ . + 2)
print(result)

https://ithelp.ithome.com.tw/upload/images/20240909/20168607tMj9NmVslU.png

今天的小筆記先到這邊~

參考資料:

  1. Apply functions with purrr :: Cheatsheet

上一篇
Day28:使用purrr套件進行functional programming(1)
下一篇
Day30:使用purrr套件進行functional programming(3)
系列文
資料科學的小筆記29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言